package algo3.pruebas;

import algo3.modelo.*;

import junit.framework.TestCase;

public class VehiculoTests extends TestCase {

	public void testCreoAutoYTieneCeroMovimientos(){
		Esquina posicionInicial= new Esquina();
		
		Auto unAuto=new Auto(posicionInicial);
		
		assertEquals(0,unAuto.cantidadDeMovimientos());
		
	}
	
	public void testAutoQuePasaPorPozoEsPenalizado(){
		Esquina posicionInicial=new Esquina();
		Esquina posicionFinal= new Esquina();
		Pozo unPozo=new Pozo();
		Calle calleConectora=new Calle();
		calleConectora.agregarExtra(unPozo);
		posicionInicial.agregarConexion(posicionFinal, calleConectora);
		
		Auto unAuto=new Auto(posicionInicial);
		unAuto.cambiarPosicion(posicionFinal);
		
		assertEquals(4,unAuto.cantidadDeMovimientos());
		
	}
	
	public void testTodoTerrenoQuePasaPorPozoNoEsPenalizado(){
		Esquina posicionInicial=new Esquina();
		Esquina posicionFinal=new Esquina();
		Pozo algunPozo=new Pozo();
		Calle calleConectora=new Calle();
		calleConectora.agregarExtra(algunPozo);
		posicionInicial.agregarConexion(posicionFinal, calleConectora);
		
		TodoTerreno unTodoTerreno=new TodoTerreno(posicionInicial);
		unTodoTerreno.cambiarPosicion(posicionFinal);
		
		assertEquals(1,unTodoTerreno.cantidadDeMovimientos());
		
	}
	
	public void testAutoQuePasaPorCalleSinExtraNoEsPenalizado(){
		Esquina posicionInicial=new Esquina();
		Esquina posicionFinal=new Esquina();
		Calle calleConectora=new Calle();
		posicionInicial.agregarConexion(posicionFinal, calleConectora);
		
		Auto unAuto=new Auto(posicionInicial);
		unAuto.cambiarPosicion(posicionFinal);
		
		assertEquals(1,unAuto.cantidadDeMovimientos());
		
	}
}
